package day230424;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * @date 2023/4/24 13:59
 * 分解因数
 */
public class Main02 {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNextInt()) {
            int num = scan.nextInt(); // 接收一个数字
            List<String> res = factorization(num);
            // 格式化输出
            System.out.println(num + " = " + String.join(" * ", res));
        }
        scan.close();
    }

    // 分解因数, 18 = 2 * 3 * 3, 即存储 2 3 3, 以 List 的形式返回
    private static List<String> factorization(int num) {
        List<String> res = new ArrayList<>();
        for (int i = 2; i <= Math.sqrt(num); i++) {
            while (num % i == 0) {
                // 说明 i 是因子
                res.add(String.valueOf(i));
                num /= i;
            }
        }
        if (num > 1) {
            // 说明本身也是不可分解的质数, 可以作为因子
            res.add(String.valueOf(num));
        }
        return res;
    }
}
